package cn.iocoder.yudao.module.system.controller.app.config.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.Map;

@Schema(description = "用户 App - 系统配置信息 Response VO")
@Data
public class AppSystemInfoRespVO {

    @Schema(description = "系统信息", requiredMode = Schema.RequiredMode.REQUIRED)
    private Map<String, Object> sysInfo;

    @Schema(description = "文件上传配置", requiredMode = Schema.RequiredMode.REQUIRED)
    private FileUploadConfig fileUpload;

    @Schema(description = "聊天配置", requiredMode = Schema.RequiredMode.REQUIRED)
    private Map<String, Object> chatInfo;

    @Schema(description = "罗盘配置", requiredMode = Schema.RequiredMode.REQUIRED)
    private Map<String, Object> compass;

    @Schema(description = "演示模式", requiredMode = Schema.RequiredMode.REQUIRED)
    @JsonProperty("demon_mode")
    private Boolean demonMode;

    @Schema(description = "文件上传配置")
    @Data
    public static class FileUploadConfig {
        @Schema(description = "文件大小限制")
        private String size;

        @Schema(description = "预览设置")
        private String preview;

        @Schema(description = "允许的文件扩展名")
        private Object fileExt; // 改为Object类型以支持数组
    }
}